%align-right {
    @include flex();
    flex-direction: row-reverse;
    flex-wrap: nowrap;
    justify-content: flex-start;
}

.filmstrip {
    position: absolute;
    bottom: 0;
    right: 0;
    padding: 10px 5px;
    @extend %align-right;
    z-index: $filmstripVideosZ;

    &__toolbar {
        @include flex();
        flex-direction: column-reverse;
        flex-wrap: nowrap;
        position: relative;
        width: $filmstripToggleButtonWidth;

        button {
            font-size: 14px;
            line-height: 1.2;
            text-align: center;
            background: transparent;
            opacity: 0.7;
            height: auto;
            width: 100%;
            padding: 0;
            margin: 0;
            border: none;
            outline: none;

            -webkit-appearance: none;

            &:hover {
                opacity: 1;
            }

            i {
                cursor: pointer;
            }
        }
    }

    &__videos {
        @extend %align-right;
        position:relative;
        padding: 0;
        /* The filmstrip should not be covered by the left toolbar. */
        bottom: 0;
        width:auto;
        overflow: visible !important;

        &#remoteVideos {
            border: $thumbnailsBorder solid transparent;
            padding-left: $defaultToolbarSize + 5;
            transition: bottom 2s;
        }

        /**
         * The local video identifier.
         */
        &#filmstripLocalVideo {
            bottom: 32px;
            display: block;

            /**
             * The invite button style.
             */
            .filmstrip__invite {
                padding-bottom: 5px;
                margin-left: 2px;
            }

            /**
             * The invite button group style.
             * TOFIX: use AtlasKit.ButtonGroup if it starts supporting different
             * flex grow options for the buttons.
             */
            .invite-button-group {
                display: inline-flex;
                justify-content: space-between;
                width: 100%;

                & button {
                    flex-grow: 1;
                    flex-shrink: 1;
                    overflow: hidden;
                }

                & > * {
                    flex-grow: 0;
                    flex-shrink: 0;
                    margin-left: 2px;
                }
            }
        }

        &.hidden {
            bottom: -196px;
        }

        .remote-videos-container {
            display: flex;
        }

        .videocontainer {
            display: none;
            position: relative;
            background-size: contain;
            border: $thumbnailVideoBorder solid transparent;
            border-radius: $borderRadius;
            margin: 0 $thumbnailVideoMargin;

            &.videoContainerFocused, &:hover {
                cursor: hand;
            }

            /**
             * Focused video thumbnail.
             */
            &.videoContainerFocused {
                transition-duration: 0.5s;
                -webkit-transition-duration: 0.5s;
                -webkit-animation-name: greyPulse;
                -webkit-animation-duration: 2s;
                -webkit-animation-iteration-count: 1;
                border: $thumbnailVideoBorder solid $videoThumbnailSelected !important;
                box-shadow: inset 0 0 3px $videoThumbnailSelected,
                0 0 3px $videoThumbnailSelected !important;
            }

            .remotevideomenu > .icon-menu {
                display: none;
            }

            .presence-label {
                color: $participantNameColor;
                font-size: 12px;
                font-weight: 100;
                left: 0;
                margin: 0 auto;
                overflow: hidden;
                pointer-events: none;
                position: absolute;
                right: 0;
                text-align: center;
                text-overflow: ellipsis;
                top: calc(50% + 30px);
                white-space: nowrap;
                width: 100%;
                z-index: $zindex3;
            }

            /**
             * Hovered video thumbnail.
             */
            &:hover {
                cursor: hand;
                border: $thumbnailVideoBorder solid $videoThumbnailHovered;
                box-shadow: inset 0 0 3px $videoThumbnailHovered,
                0 0 3px $videoThumbnailHovered;

                .remotevideomenu > .icon-menu {
                    display: inline-block;
                }
            }

            /* With the TemasysWebRTC plugin <object/> element is used
            instead of <video/> */
            & > video,
            & > object {
                cursor: hand;
                border-radius: $borderRadius;
                object-fit: cover;
                overflow: hidden;
            }
        }
    }

    /**
     * Style the filmstrip videos in filmstrip-only mode.
     */
    &__videos-filmstripOnly {
        margin-top: auto;
        margin-bottom: auto;

        .filmstrip__videos {
            &#filmstripLocalVideo {
                bottom: 0px;
            }
        }
    }

    .remote-videos-container {
        transition: opacity 1s;
    }

    &.hide-videos {
        .remote-videos-container {
            opacity: 0;
            pointer-events: none;
        }
    }
}
